#ifndef VBOX_INCLUDE_VBOX_BIOSLOGO_H
#define VBOX_INCLUDE_VBOX_BIOSLOGO_H
#ifndef RT_WITHOUT_PRAGMA_ONCE
#pragma once
#endif

#ifndef VBOX_PC_BIOS
#include <iprt/types.h>
#include <iprt/assert.h>
#endif

#define LOGO_IO_PORT 0x3b8
#define LOGO_SHOW_STEPS 16

#define LOGO_CMD_NOP 0
#define LOGO_CMD_SET_OFFSET 0x100
#define LOGO_CMD_SHOW_BMP 0x200

typedef struct LOGOHDR
{
    uint16_t u16Signature;
    uint16_t u16LogoMillies;
    uint8_t fu8FadeIn;
    uint8_t fu8FadeOut;

    uint8_t fu8ShowBootMenu;
    uint8_t u8Reserved;
    uint32_t cbLogo;
}LOGOHDR;

#ifndef VBOX_PC_BIOS
AssertCompileSize(LOGOHDR, 12);
#endif

typedef LOGOHDR *PLOGOHDR;
typedef LOGOHDR const* PCLOGOHDR; // using PCLOGOHDR = LOGOHDR const*

#define LOGO_HDR_MAGIC 0x66BB
#define LOGO_DEFAULT_LOGO 0xFFFF


#endif // header file protect
// END: CODEREVIEW: